package controller

import (
	"learningProject/qimi_web/models"
	"github.com/gin-gonic/gin"
	"net/http"
)

func IndexHandler(c *gin.Context) {
	c.HTML(http.StatusOK,"index.html",nil)
}

func CreateATodo (c *gin.Context) {
	// 前端页面填写待办事项，点击提交后发请求到这里
	// 1、从请求中把数据拿出来
	var todo models.Todo
	c.BindJSON(&todo)
	// 2、存入数据库
	err := models.CreateTodo(&todo)
	// 3、返回响应
	if err != nil {
		c.JSON(http.StatusOK,gin.H{"error":err.Error()})
	}else {
		c.JSON(http.StatusOK,gin.H{
			"code": 2000,
			"msg": "success",
			"data": todo,
		})
	}
}

func GetTodoList(c *gin.Context) {
	// 查询todo表里的所有数据
	todoList,err := models.GetAllTodo()
	if err != nil {
		c.JSON(http.StatusOK,gin.H{"error":err.Error()})
	}else {
		c.JSON(http.StatusOK,todoList)
	}
}

func UpdateATodo(c *gin.Context) {
	id,ok := c.Params.Get("id")
	if !ok {
		c.JSON(http.StatusOK,gin.H{"error":"无效的id"})
	} else {
		todo,err := models.GetATodo(id)
		if err != nil {
			c.JSON(http.StatusOK,gin.H{"error":err.Error()})
		}
		c.BindJSON(&todo)
		if err := models.UpdateATodo(todo); err != nil {
			c.JSON(http.StatusOK,gin.H{"error":err.Error()})
		}else {
			c.JSON(http.StatusOK,todo)
		}
	}
}

func DeleteATodo(c *gin.Context) {
	id,ok := c.Params.Get("id")
	if !ok {
		c.JSON(http.StatusOK,gin.H{"error":"无效的id"})
	} else {
		if err := models.DeleteATodo(id); err != nil{
			c.JSON(http.StatusOK,gin.H{"error":err.Error()})
		}else {
			c.JSON(http.StatusOK,gin.H{"id":"deleted"})
		}
	}
}

